home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************
- * Copyright (C) 1988-1993, by WATCOM International Corp. *
- * All rights reserved. No part of this software may be *
- * reproduced in any form or by any means - graphic, *
- * electronic or mechanical, including photocopying, *
- * recording, taping or information storage and retrieval *
- * systems - except with the written permission of *
- * WATCOM International Corp. *
- ****************************************************************/
-
- #ifndef __ODBC_H_INCLUDED
- #define __ODBC_H_INCLUDED
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /* ODBC.H
- Definitions for using ODBC functions
- */
-
- /* Platform-specific definitions */
-
- #ifndef ODBC_DOS
- #ifndef ODBC_DOS32
- #ifndef ODBC_MAC
- #ifndef ODBC_OS2
- #ifndef ODBC_OS216
- #ifndef ODBC_QNX
- #ifndef ODBC_WINNT
- #ifndef ODBC_WIN32
- #ifndef ODBC_WIN
- /* Default platform is Microsoft Windows */
- #ifdef __WINDOWS_386__
- // Must be WATCOM C 32 bit Windows
- #define ODBC_WIN32
- #else
- #define ODBC_WIN
- #endif
- #endif
- #endif
- #endif
- #endif
- #endif
- #endif
- #endif
- #endif
- #endif
- #ifdef ODBC_DOS
- #define ODBC_API
- #define ODBCFAR
- #endif
- #ifdef ODBC_DOS32
- #define ODBC_API
- #define ODBCFAR
- #endif
- #ifdef ODBC_MAC
- #define ODBC_API pascal
- #define ODBCFAR
- #endif
- #ifdef ODBC_OS2
- #ifdef __BORLANDC__
- #define ODBC_API __syscall
- #else
- #define ODBC_API _System
- #endif
- #define ODBCFAR
- #endif
- #ifdef ODBC_QNX
- #define ODBC_API
- #define ODBCFAR
- #endif
- #ifdef ODBC_WINNT
- #define ODBC_API __stdcall
- #define ODBCFAR
- #endif
- #ifdef ODBC_WIN32
- #define ODBC_API
- #define ODBCFAR
- #endif
- #ifdef ODBC_WIN
- #define ODBC_API far pascal
- #define ODBCFAR far
- #endif
-
- #ifndef ODBCVER
- #define ODBCVER 0x0201
- #endif
-
- /* RETCODES */
-
- #if !defined( __SQL )
-
- enum enumRETCODE {
- SQL_SUCCESS = 0,
- SQL_SUCCESS_WITH_INFO,
- SQL_STILL_EXECUTING,
- SQL_NEED_DATA = 99,
- SQL_NO_DATA_FOUND,
- SQL_ERROR = -1,
- SQL_INVALID_HANDLE = -2
- };
-
- typedef signed short RETCODE;
-
- /* SQL Types */
-
- enum enumSQLTYPE {
- SQL_TYPE_NULL = 0,
- /* ANSI numbering */
- SQL_CHAR,
- SQL_NUMERIC,
- SQL_DECIMAL,
- SQL_INTEGER,
- SQL_SMALLINT,
- SQL_FLOAT,
- SQL_REAL,
- SQL_DOUBLE,
- SQL_DATE,
- SQL_TIME,
- SQL_TIMESTAMP,
- SQL_VARCHAR,
- /* ODBC extensions */
- SQL_BIT = -7,
- SQL_TINYINT,
- SQL_BIGINT,
- SQL_LONGVARBINARY,
- SQL_VARBINARY,
- SQL_BINARY,
- SQL_LONGVARCHAR
- };
-
- #define SQL_TYPE_DRIVER_START (-80)
- #define SQL_TYPE_MIN SQL_BIT
- #define SQL_TYPE_MAX SQL_VARCHAR
- #define SQL_ALL_TYPES SQL_TYPE_NULL
-
- #if (ODBCVER >= 0x0200)
- #define SQL_SIGNED_OFFSET (-20)
- #define SQL_UNSIGNED_OFFSET (-22)
- #endif
-
- /* C types -- defined in terms of corresponding SQL types */
-
- #define SQL_C_CHAR SQL_CHAR
- #define SQL_C_LONG SQL_INTEGER
- #define SQL_C_SHORT SQL_SMALLINT
- #define SQL_C_FLOAT SQL_REAL
- #define SQL_C_DOUBLE SQL_DOUBLE
- #define SQL_C_DEFAULT 99
-
- #endif /* !defined( __SQL ) */
-
- #if !defined( __SQLEXT )
-
- #define SQL_C_DATE SQL_DATE
- #define SQL_C_TIME SQL_TIME
- #define SQL_C_TIMESTAMP SQL_TIMESTAMP
- #define SQL_C_BINARY SQL_BINARY
- #define SQL_C_BIT SQL_BIT
- #define SQL_C_TINYINT SQL_TINYINT
- #if (ODBCVER >= 0x0200)
- #define SQL_C_SLONG SQL_C_LONG+SQL_SIGNED_OFFSET
- #define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET
- #define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET
- #define SQL_C_ULONG SQL_C_LONG+SQL_UNSIGNED_OFFSET
- #define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET
- #define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET
- #define SQL_C_BOOKMARK SQL_C_ULONG
- #endif
-
- #endif /* !defined( __SQLEXT ) */
-
- /* Portable C data types */
-
- #if !defined( __SQL )
-
- #if !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
- typedef unsigned char UCHAR;
- #endif
- typedef signed char SCHAR;
- typedef unsigned short UWORD;
- typedef signed short SWORD;
- typedef unsigned long UDWORD;
- typedef signed long SDWORD;
- typedef double SDOUBLE;
- typedef long double LDOUBLE;
- typedef float SFLOAT;
- typedef void ODBCFAR * PTR;
-
- /* Define some common things often found in WINDOWS.H */
-
- #if defined( MAC )
- #if defined( MACODBC ) && MACODBC
- // ODBC 2.0 Driver Manager and SDK
- // BOOL is now defined in "win2mac.h" from ODBC 2.0 SDK
- #elif defined( USE_ODBC_DRIVER )
- typedef unsigned short BOOL;
- #else
- typedef int BOOL;
- #endif
- #elif !defined(_INC_WINDOWS) && !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
- typedef int BOOL;
- #endif
-
- /* Handle types */
-
- #if defined( MAC ) && defined( USE_ODBC_DRIVER )
- typedef struct ENV ** HENV;
- typedef struct DBC ** HDBC;
- typedef struct STMT ** HSTMT;
- #else
- typedef void ODBCFAR * HENV;
- typedef void ODBCFAR * HDBC;
- typedef void ODBCFAR * HSTMT;
- #endif
-
- #define SQL_NULL_HENV 0
- #define SQL_NULL_HDBC 0
- #define SQL_NULL_HSTMT 0
-
- /* Special length values */
-
- enum enumLENGTH {
- SQL_IGNORE = (-6),
- SQL_DEFAULT_PARAM,
- SQL_NO_TOTAL,
- SQL_NTS,
- SQL_DATA_AT_EXEC,
- SQL_NULL_DATA
- };
-
- /* Miscellaneous constants */
- #if (ODBCVER >= 0x0200)
- #define SQL_SPEC_MAJOR 2
- #define SQL_SPEC_MINOR 1
- #define SQL_SPEC_STRING "02.01"
- #endif /* ODBCVER >= 0x0200 */
- #define SQLSTATE_SIZE 5
- #define SQL_MAX_MESSAGE_LENGTH 512
- #define SQL_MAX_DSN_LENGTH 32
- #define SQL_MAX_OPTION_STRING_LENGTH 256
-
- #endif /* !defined( __SQL ) */
-
- /* Define some common things often found in WINDOWS.H */
-
- #if !defined( _WSQLODBC_H )
- #if defined( MAC )
- #if defined( MACODBC ) && MACODBC
- // HWND is now defined in "win2mac.h" from Mac ODBC SDK
- #else
- typedef struct GrafPort * HWND;
- #endif
- #elif !defined(_INC_WINDOWS) && !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
- // HWND is now defined in wdef.hpp
- #endif
- #endif
-
- #if !defined(TRUE)
- #define TRUE 1
- #endif
- #if !defined(FALSE)
- #define FALSE 0
- #endif
-
- /* C structures */
-
- #if !defined( __SQLEXT )
-
- typedef struct tagDATE_STRUCT {
- SWORD year;
- UWORD month;
- UWORD day;
- } DATE_STRUCT;
-
- typedef struct tagTIME_STRUCT {
- UWORD hour;
- UWORD minute;
- UWORD second;
- } TIME_STRUCT;
-
- typedef struct tagTIMESTAMP_STRUCT {
- SWORD year;
- UWORD month;
- UWORD day;
- UWORD hour;
- UWORD minute;
- UWORD second;
- UDWORD fraction;
- } TIMESTAMP_STRUCT;
-
- #if (ODBCVER >= 0x0200)
- typedef unsigned long int BOOKMARK;
- #endif
-
- #endif /* !defined( __SQLEXT ) */
-
- /* Values that may be defined elsewhere */
-
- #ifndef NULL
- #define NULL 0
- #endif
-
- #if !defined( __SQL )
-
- /* API functions -- environment */
-
- RETCODE ODBC_API SQLAllocEnv( /* CORE */
- HENV ODBCFAR * phenv );
-
- RETCODE ODBC_API SQLError( /* CORE */
- HENV henv,
- HDBC hdbc,
- HSTMT hstmt,
- UCHAR ODBCFAR * szSqlState, /* Always SQLSTATE_SIZE+1 bytes */
- SDWORD ODBCFAR * pfNativeError,
- UCHAR ODBCFAR * szErrorMsg,
- SWORD cbErrorMsgMax,
- SWORD ODBCFAR * pcbErrorMsg );
-
- RETCODE ODBC_API SQLDataSources( /* Level 2 */
- HENV henv,
- UWORD fDirection, /* enumSQLFetchType */
- UCHAR ODBCFAR * szDSN,
- SWORD cbDSNMax,
- SWORD ODBCFAR * pcbDSN,
- UCHAR ODBCFAR * szDescription,
- SWORD cbDescriptionMax,
- SWORD ODBCFAR * pcbDescription );
-
- RETCODE ODBC_API SQLFreeEnv( /* CORE */
- HENV henv );
-
- /* API functions -- connections */
-
- RETCODE ODBC_API SQLAllocConnect( /* CORE */
- HENV henv,
- HDBC ODBCFAR * phdbc );
-
- RETCODE ODBC_API SQLConnect( /* CORE */
- HDBC hdbc,
- UCHAR ODBCFAR * szDSN,
- SWORD cbDSN,
- UCHAR ODBCFAR * szUID,
- SWORD cbUID,
- UCHAR ODBCFAR * szAuthStr,
- SWORD cbAuthStr );
-
- enum enumSQLMode {
- SQL_MODE_READ_WRITE,
- SQL_MODE_READ_ONLY
- };
-
- enum enumSQLDriverConnect {
- SQL_DRIVER_NOPROMPT,
- SQL_DRIVER_COMPLETE,
- SQL_DRIVER_PROMPT,
- SQL_DRIVER_COMPLETE_REQUIRED
- };
-
- RETCODE ODBC_API SQLDriverConnect( /* Level 1 */
- HDBC hdbc,
- HWND hwnd,
- UCHAR ODBCFAR * szConnStrIn, /* input connection string */
- SWORD cbConnStrIn,
- UCHAR ODBCFAR * szConnStrOut,
- SWORD cbConnStrOutMax,
- SWORD ODBCFAR * pcbConnStrOut,
- UWORD fDriverCompletion ); /* enumSQLDriverConnect */
-
- RETCODE ODBC_API SQLBrowseConnect( /* Level 2 */
- HDBC hdbc,
- UCHAR ODBCFAR * szConnStrIn, /* input connection string */
- SWORD cbConnStrIn,
- UCHAR ODBCFAR * szConnStrOut,
- SWORD cbConnStrOutMax,
- SWORD ODBCFAR * pcbConnStrOut );
-
- #if (ODBCVER >= 0x0200)
-
- RETCODE ODBC_API SQLDrivers(
- HENV henv,
- UWORD fDirection,
- UCHAR ODBCFAR * *szDriverDesc,
- SWORD cbDriverDescMax,
- SWORD ODBCFAR * *pcbDriverDesc,
- UCHAR ODBCFAR * *szDriverAttributes,
- SWORD cbDrvrAttrMax,
- SWORD ODBCFAR * *pcbDrvrAttr );
- #endif
-
- enum enumSQLOption {
- /* Statement options (can also be used with connections) */
- SQL_QUERY_TIMEOUT,
- SQL_MAX_ROWS,
- SQL_NOSCAN,
- SQL_MAX_LENGTH,
- SQL_ASYNC_ENABLE,
- SQL_BIND_TYPE,
- #if (ODBCVER >= 0x0200)
- SQL_CURSOR_TYPE,
- SQL_CONCURRENCY,
- SQL_KEYSET_SIZE,
- SQL_ROWSET_SIZE,
- SQL_SIMULATE_CURSOR,
- SQL_RETRIEVE_DATA,
- SQL_USE_BOOKMARKS,
- SQL_GET_BOOKMARK,
- SQL_ROW_NUMBER,
- #endif
- /* Connect options */
- SQL_ACCESS_MODE = 101,
- SQL_AUTOCOMMIT,
- SQL_LOGIN_TIMEOUT,
- SQL_OPT_TRACE,
- SQL_OPT_TRACEFILE,
- SQL_TRANSLATE_DLL,
- SQL_TRANSLATE_OPTION,
- SQL_TXN_ISOLATION, /* enumSQLIsolation */
- SQL_CURRENT_QUALIFIER,
- #if (ODBCVER >= 0x0200)
- SQL_ODBC_CURSORS,
- SQL_QUIET_MODE,
- SQL_PACKET_SIZE,
- #endif
- /* Driver specific options */
- SQL_CONNECT_OPT_DRVR_START = 1000
- };
-
- enum enumSQLIsolation {
- SQL_TXN_READ_UNCOMMITTED = 1,
- SQL_TXN_READ_COMMITTED = 2,
- SQL_TXN_REPEATABLE_READ = 4,
- SQL_TXN_SERIALIZABLE = 8,
- SQL_TXN_VERSIONING = 16
- };
-
- enum enumNoScanOps {
- SQL_NOSCAN_OFF,
- SQL_NOSCAN_ON
- };
-
- enum enumAsyncEnable {
- SQL_ASYNC_ENABLE_OFF,
- SQL_ASYNC_ENABLE_ON
- };
-
- enum enumAutoCommit {
- SQL_AUTOCOMMIT_OFF,
- SQL_AUTOCOMMIT_ON
- };
-
- enum enumTraceOpt {
- SQL_OPT_TRACE_OFF,
- SQL_OPT_TRACE_ON
- };
-
- #if (ODBCVER >= 0x0200)
-
- enum enumODBCCursors {
- SQL_CUR_USE_IF_NEEDED,
- SQL_CUR_USE_ODBC,
- SQL_CUR_USE_DRIVER
- };
-
- #define SQL_CUR_USE_DEFAULT SQL_CUR_USE_DRIVER
-
- #endif
-
- /* Special values for certain options */
- #define SQL_QUERY_TIMEOUT_DEFAULT 0UL
- #define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
- #define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
- #define SQL_MAX_ROWS_DEFAULT 0UL
- #define SQL_MAX_LENGTH_DEFAULT 0UL
- #define SQL_BIND_BY_COLUMN 0UL
- #define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
- #define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
- #define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
- #define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
- #define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
-
-
- RETCODE ODBC_API SQLGetConnectOption( /* Level 1 */
- HDBC hdbc,
- UWORD fOption, /* enumSQLOption */
- PTR pvParam );
-
- RETCODE ODBC_API SQLSetConnectOption( /* Level 1 */
- HDBC hdbc,
- UWORD fOption, /* enumSQLOption */
- UDWORD vParam );
-
- RETCODE ODBC_API SQLNativeSql( /* Level 2 */
- HDBC hdbc,
- UCHAR ODBCFAR * szSqlStrIn,
- SDWORD cbSqlStrIn,
- UCHAR ODBCFAR * szSqlStr,
- SDWORD cbSqlStrMax,
- SDWORD ODBCFAR * pcbSqlStr );
-
- enum enumSQLTransact {
- SQL_COMMIT,
- SQL_ROLLBACK
- };
-
- RETCODE ODBC_API SQLTransact( /* CORE */
- HENV henv,
- HDBC hdbc,
- UWORD fType ); /* enumSQLTransact */
-
- RETCODE ODBC_API SQLDisconnect( /* CORE */
- HDBC hdbc );
-
- RETCODE ODBC_API SQLFreeConnect( /* CORE */
- HDBC hdbc );
-
- /* API functions -- driver information */
-
- enum enumSQLFunctions {
- /* CORE functions */
- SQL_API_SQLALLOCCONNECT = 1,
- SQL_API_SQLALLOCENV,
- SQL_API_SQLALLOCSTMT,
- SQL_API_SQLBINDCOL,
- SQL_API_SQLCANCEL,
- SQL_API_SQLCOLATTRIBUTES,
- SQL_API_SQLCONNECT,
- SQL_API_SQLDESCRIBECOL,
- SQL_API_SQLDISCONNECT,
- SQL_API_SQLERROR,
- SQL_API_SQLEXECDIRECT,
- SQL_API_SQLEXECUTE,
- SQL_API_SQLFETCH,
- SQL_API_SQLFREECONNECT,
- SQL_API_SQLFREEENV,
- SQL_API_SQLFREESTMT,
- SQL_API_SQLGETCURSORNAME,
- SQL_API_SQLNUMRESULTCOLS,
- SQL_API_SQLPREPARE,
- SQL_API_SQLROWCOUNT,
- SQL_API_SQLSETCURSORNAME,
- SQL_API_SQLSETPARAM,
- SQL_API_SQLTRANSACT,
- SQL_API_END_OF_CORE,
-
- /* Level 1 functions */
- SQL_API_SQLCOLUMNS = 40,
- SQL_API_SQLDRIVERCONNECT,
- SQL_API_SQLGETCONNECTOPTION,
- SQL_API_SQLGETDATA,
- SQL_API_SQLGETFUNCTIONS,
- SQL_API_SQLGETINFO,
- SQL_API_SQLGETSTMTOPTION,
- SQL_API_SQLGETTYPEINFO,
- SQL_API_SQLPARAMDATA,
- SQL_API_SQLPUTDATA,
- SQL_API_SQLSETCONNECTOPTION,
- SQL_API_SQLSETSTMTOPTION,
- SQL_API_SQLSPECIALCOLUMNS,
- SQL_API_SQLSTATISTICS,
- SQL_API_SQLTABLES,
-
- /* Level 2 functions */
- SQL_API_SQLBROWSECONNECT,
- SQL_API_SQLCOLUMNPRIVILEGES,
- SQL_API_SQLDATASOURCES,
- SQL_API_SQLDESCRIBEPARAM,
- SQL_API_SQLEXTENDEDFETCH,
- SQL_API_SQLFOREIGNKEYS,
- SQL_API_SQLMORERESULTS,
- SQL_API_SQLNATIVESQL,
- SQL_API_SQLNUMPARAMS,
- SQL_API_SQLPARAMOPTIONS,
- SQL_API_SQLPRIMARYKEYS,
- SQL_API_SQLPROCEDURECOLUMNS,
- SQL_API_SQLPROCEDURES,
- SQL_API_SQLSETPOS,
- SQL_API_SQLSETSCROLLOPTIONS,
- SQL_API_SQLTABLEPRIVILEGES,
- #if (ODBCVER >= 0x0200)
- SQL_API_SQLDRIVERS,
- SQL_API_SQLBINDPARAMETER,
- #endif
- SQL_API_END_OF_FUNCTIONS
- };
-
- #define SQL_NUM_FUNCTIONS (SQL_API_END_OF_CORE - 1)
- #define SQL_EXT_API_START SQL_API_SQLCOLUMNS
- #define SQL_EXT_API_LAST (SQL_API_END_OF_FUNCTIONS - 1)
-
- #define SQL_NUM_EXTENSIONS (SQL_API_END_OF_FUNCTIONS-SQL_EXT_API_START)
- #define SQL_API_ALL_FUNCTIONS 0
-
- RETCODE ODBC_API SQLGetFunctions( /* Level 1 */
- HDBC hdbc,
- UWORD fFunction, /* enumSQLFunctions */
- UWORD ODBCFAR * pfExists ); /* TRUE or FALSE */
-
-
- enum enumSQLFetchDirection {
- SQL_FD_FETCH_NEXT = 1,
- SQL_FD_FETCH_FIRST = 2,
- SQL_FD_FETCH_LAST = 4,
- SQL_FD_FETCH_PRIOR = 8,
- SQL_FD_FETCH_ABSOLUTE = 16,
- SQL_FD_FETCH_RELATIVE = 32,
- SQL_FD_FETCH_RESUME = 64
- #if (ODBCVER >= 0x0200)
- ,
- SQL_FD_FETCH_BOOKMARK = 128
- #endif
- };
-
- #define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR
-
- enum enumSQLConcurMask {
- SQL_SCCO_READ_ONLY = 1,
- SQL_SCCO_LOCK = 2,
- SQL_SCCO_OPT_ROWVER = 4,
- SQL_SCCO_OPT_VALUES = 8
- };
-
- #define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER
-
- enum enumSQLScrollOptions {
- SQL_SO_FORWARD_ONLY = 1,
- SQL_SO_KEYSET_DRIVEN = 2,
- SQL_SO_DYNAMIC = 4,
- SQL_SO_MIXED = 8
- #if (ODBCVER >= 0x0200)
- ,
- SQL_SO_STATIC = 16
- #endif
- };
-
- enum enumODBCAPIConform {
- SQL_OAC_NONE = 0x0000,
- SQL_OAC_LEVEL1 = 0x0001,
- SQL_OAC_LEVEL2 = 0x0002
- };
-
- enum enumCliSagConform {
- SQL_OSCC_NOT_COMPLIANT = 0x0000,
- SQL_OSCC_COMPLIANT = 0x0001
- };
-
- enum enumODBCSQLConform {
- SQL_OSC_MINIMUM = 0x0000,
- SQL_OSC_CORE = 0x0001,
- SQL_OSC_EXTENDED = 0x0002
- };
-
- enum enumConcatNullBehavior {
- SQL_CB_NULL = 0x0000,
- SQL_CB_NON_NULL = 0x0001
- };
-
- enum enumCursorCommitBehavior {
- SQL_CB_DELETE = 0x0000,
- SQL_CB_CLOSE = 0x0001,
- SQL_CB_PRESERVE = 0x0002
- };
-
- #define SQL_CC_DELETE SQL_CB_DELETE
- #define SQL_CR_DELETE SQL_CB_DELETE
- #define SQL_CC_CLOSE SQL_CB_CLOSE
- #define SQL_CR_CLOSE SQL_CB_CLOSE
- #define SQL_CC_PRESERVE SQL_CB_PRESERVE
- #define SQL_CR_PRESERVE SQL_CB_PRESERVE
-
- enum enumIDCase {
- SQL_IC_UPPER = 0x0001,
- SQL_IC_LOWER = 0x0002,
- SQL_IC_SENSITIVE = 0x0003,
- SQL_IC_MIXED = 0x0004
- };
-
- enum enumTxnValues {
- SQL_TC_NONE = 0x0000,
- SQL_TC_DML = 0x0001,
- SQL_TC_ALL = 0x0002
- #if (ODBCVER >= 0x0200)
- ,
- SQL_TC_DDL_COMMIT = 0x0003,
- SQL_TC_DDL_IGNORE = 0x0004
- #endif
- };
-
- enum enumCorrelationName {
- SQL_CN_NONE = 0x0000,
- SQL_CN_DIFFERENT = 0x0001,
- SQL_CN_ANY = 0x0002
- };
-
- enum enumNonNullableCol {
- SQL_NNC_NULL = 0x0000,
- SQL_NNC_NON_NULL = 0x0001
- };
-
- #if (ODBCVER >= 0x0200)
-
- enum enumNullCollation {
- SQL_NC_HIGH = 0x0000,
- SQL_NC_LOW = 0x0001,
- SQL_NC_START = 0x0002,
- SQL_NC_END = 0x0004
- };
-
- enum enumFileUsage {
- SQL_FILE_NOT_SUPPORTED = 0x0000,
- SQL_FILE_TABLE = 0x0001,
- SQL_FILE_QUALIFIER = 0x0002
- };
-
- enum enumGetDataExtensions {
- SQL_GD_ANY_COLUMN = 0x00000000L,
- SQL_GD_ANY_ORDER = 0x00000001L,
- SQL_GD_BLOCK = 0x00000002L,
- SQL_GD_BOUND = 0x00000004L
- };
-
- enum enumAlterTable {
- SQL_AT_ADD_COLUMN = 0x00000001L,
- SQL_AT_DROP_COLUMN = 0x00000002L
- };
-
- enum enumPosStmts {
- SQL_PS_POSITIONED_DELETE = 0x00000001L,
- SQL_PS_POSITIONED_UPDATE = 0x00000002L,
- SQL_PS_SELECT_FOR_UPDATE = 0x00000004L
- };
-
- enum enumGroupBy {
- SQL_GB_NOT_SUPPORTED = 0x00000001L,
- SQL_GB_GROUP_BY_EQUALS_SELECT = 0x00000002L,
- SQL_GB_GROUP_BY_CONTAINS_SELECT = 0x00000004L,
- SQL_GB_NO_RELATION = 0x00000008L
- };
-
- enum enumOwnerUsage {
- SQL_OU_DML_STATEMENTS = 0x00000001L,
- SQL_OU_PROCEDURE_INVOCATION = 0x00000002L,
- SQL_OU_TABLE_DEFINITION = 0x00000004L,
- SQL_OU_INDEX_DEFINITION = 0x00000008L,
- SQL_OU_PRIVILEGE_DEFINITION = 0x00000010L
- };
-
- enum enumQualifierUsage {
- SQL_QU_DML_STATEMENTS = 0x00000001L,
- SQL_QU_PROCEDURE_INVOCATION = 0x00000002L,
- SQL_QU_TABLE_DEFINITION = 0x00000004L,
- SQL_QU_INDEX_DEFINITION = 0x00000008L,
- SQL_QU_PRIVILEGE_DEFINITION = 0x00000010L
- };
-
- enum enumSubqueries {
- SQL_SQ_COMPARISON = 0x00000001L,
- SQL_SQ_EXISTS = 0x00000002L,
- SQL_SQ_IN = 0x00000004L,
- SQL_SQ_QUANTIFIED = 0x00000008L,
- SQL_SQ_CORRELATED_SUBQUERIES = 0x00000010L
- };
-
- enum enumUnion {
- SQL_U_UNION = 0x00000001L,
- SQL_U_UNION_ALL = 0x00000002L
- };
-
- enum enumBookmark {
- SQL_BP_CLOSE = 0x00000001L,
- SQL_BP_DELETE = 0x00000002L,
- SQL_BP_DROP = 0x00000004L,
- SQL_BP_TRANSACTION = 0x00000008L,
- SQL_BP_UPDATE = 0x00000010L,
- SQL_BP_OTHER_HSTMT = 0x00000020L,
- SQL_BP_SCROLL = 0x00000040L
- };
-
- enum enumStaticSensitivity {
- SQL_SS_ADDITIONS = 0x00000001L,
- SQL_SS_DELETIONS = 0x00000002L,
- SQL_SS_UPDATES = 0x00000004L
- };
-
- enum enumLockTypes {
- SQL_LCK_NO_CHANGE = 0x00000001L,
- SQL_LCK_EXCLUSIVE = 0x00000002L,
- SQL_LCK_UNLOCK = 0x00000004L
- };
-
- enum enumPosOps {
- SQL_POS_POSITION = 0x00000001L,
- SQL_POS_REFRESH = 0x00000002L,
- SQL_POS_UPDATE = 0x00000004L,
- SQL_POS_DELETE = 0x00000008L,
- SQL_POS_ADD = 0x00000010L
- };
-
- enum enumQualifierLocal {
- SQL_QL_START = 0x0001L,
- SQL_QL_END = 0x0002L
- };
-
- #if (ODBCVER >= 0x0201)
-
- enum enumOJCapabilities {
- SQL_OJ_LEFT = 0x00000001L,
- SQL_OJ_RIGHT = 0x00000002L,
- SQL_OJ_FULL = 0x00000004L,
- SQL_OJ_NESTED = 0x00000008L,
- SQL_OJ_NOT_ORDERED = 0x00000010L,
- SQL_OJ_INNER = 0x00000020L,
- SQL_OJ_ALL_COMPARISON_OPS = 0x00000040L
- };
-
- #endif /* (ODBCVER >= 0x0201) */
-
- #endif /* (ODBCVER >= 0x0200) */
-
- enum enumSQLConvertFunctions {
- SQL_FN_CVT_CONVERT = 1
- };
-
- enum enumSQLNumericFunctions {
- SQL_FN_NUM_ABS = 0x00000001L,
- SQL_FN_NUM_ACOS = 0x00000002L,
- SQL_FN_NUM_ASIN = 0x00000004L,
- SQL_FN_NUM_ATAN = 0x00000008L,
- SQL_FN_NUM_ATAN2 = 0x00000010L,
- SQL_FN_NUM_CEILING = 0x00000020L,
- SQL_FN_NUM_COS = 0x00000040L,
- SQL_FN_NUM_COT = 0x00000080L,
- SQL_FN_NUM_EXP = 0x00000100L,
- SQL_FN_NUM_FLOOR = 0x00000200L,
- SQL_FN_NUM_LOG = 0x00000400L,
- SQL_FN_NUM_MOD = 0x00000800L,
- SQL_FN_NUM_SIGN = 0x00001000L,
- SQL_FN_NUM_SIN = 0x00002000L,
- SQL_FN_NUM_SQRT = 0x00004000L
- /* Enums must be of type int, so the rest cannot be enums
- with 16 bit compilers */
- /*
- SQL_FN_NUM_TAN = 0x00008000L,
- SQL_FN_NUM_PI = 0x00010000L,
- SQL_FN_NUM_RAND = 0x00020000L
- */
- #define SQL_FN_NUM_TAN 0x00008000L
- #define SQL_FN_NUM_PI 0x00010000L
- #define SQL_FN_NUM_RAND 0x00020000L
- #if (ODBCVER >= 0x0200)
- #define SQL_FN_NUM_DEGREES 0x00040000L
- #define SQL_FN_NUM_LOG10 0x00080000L
- #define SQL_FN_NUM_POWER 0x00100000L
- #define SQL_FN_NUM_RADIANS 0x00200000L
- #define SQL_FN_NUM_ROUND 0x00400000L
- #define SQL_FN_NUM_TRUNCATE 0x00800000L
- #endif
- };
-
- enum enumSQLStringFunctions {
- SQL_FN_STR_CONCAT = 0x00000001L,
- SQL_FN_STR_INSERT = 0x00000002L,
- SQL_FN_STR_LEFT = 0x00000004L,
- SQL_FN_STR_LTRIM = 0x00000008L,
- SQL_FN_STR_LENGTH = 0x00000010L,
- SQL_FN_STR_LOCATE = 0x00000020L,
- SQL_FN_STR_LCASE = 0x00000040L,
- SQL_FN_STR_REPEAT = 0x00000080L,
- SQL_FN_STR_REPLACE = 0x00000100L,
- SQL_FN_STR_RIGHT = 0x00000200L,
- SQL_FN_STR_RTRIM = 0x00000400L,
- SQL_FN_STR_SUBSTRING = 0x00000800L,
- SQL_FN_STR_UCASE = 0x00001000L,
- SQL_FN_STR_ASCII = 0x00002000L,
- SQL_FN_STR_CHAR = 0x00004000L
- #if (ODBCVER >= 0x0200)
- /* Enums must be of type int, so the rest cannot be enums
- with 16 bit compilers */
- #define SQL_FN_STR_DIFFERENCE 0x00008000L
- #define SQL_FN_STR_LOCATE_2 0x00010000L
- #define SQL_FN_STR_SOUNDEX 0x00020000L
- #define SQL_FN_STR_SPACE 0x00040000L
- #endif
- };
-
- enum enumSQLSystemFunctions {
- SQL_FN_SYS_USERNAME = 0x00000001L,
- SQL_FN_SYS_DBNAME = 0x00000002L,
- SQL_FN_SYS_IFNULL = 0x00000004L
- };
-
- enum enumSQLTimedateFunctions {
- SQL_FN_TD_NOW = 0x00000001L,
- SQL_FN_TD_CURDATE = 0x00000002L,
- SQL_FN_TD_DAYOFMONTH = 0x00000004L,
- SQL_FN_TD_DAYOFWEEK = 0x00000008L,
- SQL_FN_TD_DAYOFYEAR = 0x00000010L,
- SQL_FN_TD_MONTH = 0x00000020L,
- SQL_FN_TD_QUARTER = 0x00000040L,
- SQL_FN_TD_WEEK = 0x00000080L,
- SQL_FN_TD_YEAR = 0x00000100L,
- SQL_FN_TD_CURTIME = 0x00000200L,
- SQL_FN_TD_HOUR = 0x00000400L,
- SQL_FN_TD_MINUTE = 0x00000800L,
- SQL_FN_TD_SECOND = 0x00001000L
- #if (ODBCVER >= 0x0200)
- ,
- SQL_FN_TD_TIMESTAMPADD = 0x00002000L,
- SQL_FN_TD_TIMESTAMPDIFF = 0x00004000L
- /* Enums must be of type int, so the rest cannot be enums
- with 16 bit compilers */
- #define SQL_FN_TD_DAYNAME 0x00008000L
- #define SQL_FN_TD_MONTHNAME 0x00010000L
- #endif
- };
-
- enum enumSQLTSI {
- SQL_FN_TSI_FRAC_SECOND = 0x00000001L,
- SQL_FN_TSI_SECOND = 0x00000002L,
- SQL_FN_TSI_MINUTE = 0x00000004L,
- SQL_FN_TSI_HOUR = 0x00000008L,
- SQL_FN_TSI_DAY = 0x00000010L,
- SQL_FN_TSI_WEEK = 0x00000020L,
- SQL_FN_TSI_MONTH = 0x00000040L,
- SQL_FN_TSI_QUARTER = 0x00000080L,
- SQL_FN_TSI_YEAR = 0x00000100L
- };
-
- enum enumSQLConvert {
- SQL_CVT_CHAR = 0x00000001L,
- SQL_CVT_NUMERIC = 0x00000002L,
- SQL_CVT_DECIMAL = 0x00000004L,
- SQL_CVT_INTEGER = 0x00000008L,
- SQL_CVT_SMALLINT = 0x00000010L,
- SQL_CVT_FLOAT = 0x00000020L,
- SQL_CVT_REAL = 0x00000040L,
- SQL_CVT_DOUBLE = 0x00000080L,
- SQL_CVT_VARCHAR = 0x00000100L,
- SQL_CVT_LONGVARCHAR = 0x00000200L,
- SQL_CVT_BINARY = 0x00000400L,
- SQL_CVT_VARBINARY = 0x00000800L,
- SQL_CVT_BIT = 0x00001000L,
- SQL_CVT_TINYINT = 0x00002000L,
- SQL_CVT_BIGINT = 0x00004000L
- /* Enums must be of type int, so the rest cannot be enums
- with 16 bit compilers */
- /*
- SQL_CVT_DATE = 0x00008000L,
- SQL_CVT_TIME = 0x00010000L,
- SQL_CVT_TIMESTAMP = 0x00020000L,
- SQL_CVT_LONGVARBINARY = 0x00040000L
- */
- #define SQL_CVT_DATE 0x00008000L
- #define SQL_CVT_TIME 0x00010000L
- #define SQL_CVT_TIMESTAMP 0x00020000L
- #define SQL_CVT_LONGVARBINARY 0x00040000L
- };
-
- enum enumSQLGetInfo { /* Types of information available */
- /* Driver information */
- SQL_INFO_FIRST, /* first GetInfo type */
- SQL_ACTIVE_CONNECTIONS = 0, /* returns short */
- SQL_ACTIVE_STATEMENTS, /* returns short */
- SQL_DATA_SOURCE_NAME, /* returns string */
- SQL_DRIVER_HDBC, /* returns HDBC */
- SQL_DRIVER_HENV, /* returns HENV */
- SQL_DRIVER_HSTMT, /* returns HSTMT */
- SQL_DRIVER_NAME, /* returns string */
- SQL_DRIVER_VER, /* returns string */
- SQL_FETCH_DIRECTION, /* returns mask of enumSQLFetchDirection */
- SQL_ODBC_API_CONFORMANCE, /* returns integer 0, 1 or 2*/
- SQL_ODBC_VER, /* returns string */
- SQL_ROW_UPDATES, /* returns string "Y" or "N" */
- SQL_ODBC_SAG_CLI_CONFORMANCE,/* returns short TRUE or FALSE */
- SQL_SERVER_NAME, /* returns string */
- SQL_SEARCH_PATTERN_ESCAPE, /* returns string */
- SQL_ODBC_SQL_CONFORMANCE, /* returns short 0, 1 or 2 */
- /* DBMS information */
- SQL_DATABASE_NAME, /* returns string - Use SQLGetConnectOption */
- SQL_DBMS_NAME, /* returns string */
- SQL_DBMS_VER, /* returns string */
- /* Data source capabilities */
- SQL_ACCESSIBLE_TABLES, /* returns string "Y" or "N" */
- SQL_ACCESSIBLE_PROCEDURES, /* returns string "Y" or "N" */
- SQL_PROCEDURES, /* returns string "Y" or "N" */
- SQL_CONCAT_NULL_BEHAVIOR, /* returns short 0=NULL 1=empty string */
- SQL_CURSOR_COMMIT_BEHAVIOR, /* returns short 0=close/del 1=close 2=open */
- SQL_CURSOR_ROLLBACK_BEHAVIOR,/* same as above */
- SQL_DATA_SOURCE_READ_ONLY, /* returns string "Y" or "N" */
- SQL_DEFAULT_TXN_ISOLATION, /* returns mask of enumSQLIsolation */
- SQL_EXPRESSIONS_IN_ORDERBY, /* returns string "Y" or "N" */
- SQL_IDENTIFIER_CASE, /* returns short 0=UPR 1=LWR 2=case sens 3=ins*/
- SQL_IDENTIFIER_QUOTE_CHAR, /* returns string */
- SQL_MAX_COLUMN_NAME_LEN, /* returns short */
- SQL_MAX_CURSOR_NAME_LEN, /* returns short */
- SQL_MAX_OWNER_NAME_LEN, /* returns short */
- SQL_MAX_PROCEDURE_NAME_LEN, /* returns short */
- SQL_MAX_QUALIFIER_NAME_LEN, /* returns short */
- SQL_MAX_TABLE_NAME_LEN, /* returns short */
- SQL_MULT_RESULT_SETS, /* returns string "Y" or "N" */
- SQL_MULTIPLE_ACTIVE_TXN, /* returns string "Y" or "N" */
- SQL_OUTER_JOINS, /* returns string "Y" or "N" */
- SQL_OWNER_TERM, /* returns string */
- SQL_PROCEDURE_TERM, /* returns string */
- SQL_QUALIFIER_NAME_SEPARATOR, /* returns string */
- SQL_QUALIFIER_TERM, /* returns string */
- SQL_SCROLL_CONCURRENCY, /* returns mask of enumSQLConcurMask */
- SQL_SCROLL_OPTIONS, /* returns mask of enumSQLScrollOptions */
- SQL_TABLE_TERM, /* returns string */
- SQL_TXN_CAPABLE, /* returns short 0=none 1=DML 2=DML&DDL */
- SQL_USER_NAME, /* returns string */
- /* Available functions */
- SQL_CONVERT_FUNCTIONS, /* returns mask of enumSQLConvertFunctions */
- SQL_NUMERIC_FUNCTIONS, /* returns mask of enumSQLNumericFunctions */
- SQL_STRING_FUNCTIONS, /* returns mask of enumSQLStringFunctions */
- SQL_SYSTEM_FUNCTIONS, /* returns mask of enumSQLSystemFunctions */
- SQL_TIMEDATE_FUNCTIONS, /* returns mask of enumSQLTimedateFunctions */
- /* Conversion capabilities -- all return mask of enumSQLConvert */
- SQL_CONVERT_BIGINT,
- SQL_CONVERT_BINARY,
- SQL_CONVERT_BIT,
- SQL_CONVERT_CHAR,
- SQL_CONVERT_DATE,
- SQL_CONVERT_DECIMAL,
- SQL_CONVERT_DOUBLE,
- SQL_CONVERT_FLOAT,
- SQL_CONVERT_INTEGER,
- SQL_CONVERT_LONGVARCHAR,
- SQL_CONVERT_NUMERIC,
- SQL_CONVERT_REAL,
- SQL_CONVERT_SMALLINT,
- SQL_CONVERT_TIME,
- SQL_CONVERT_TIMESTAMP,
- SQL_CONVERT_TINYINT,
- SQL_CONVERT_VARBINARY,
- SQL_CONVERT_VARCHAR,
- SQL_CONVERT_LONGVARBINARY,
- /* Afterthought -- should be in Data source capabilities */
- SQL_TXN_ISOLATION_OPTION, /* returns enumSQLIsolation */
- SQL_ODBC_SQL_OPT_IEF,
- SQL_CORRELATION_NAME,
- SQL_NON_NULLABLE_COLUMNS,
- #if (ODBCVER >= 0x0200)
- SQL_DRIVER_HLIB,
- SQL_DRIVER_ODBC_VER,
- SQL_LOCK_TYPES,
- SQL_POS_OPERATIONS,
- SQL_POSITIONED_STATEMENTS,
- SQL_GETDATA_EXTENSIONS,
- SQL_BOOKMARK_PERSISTENCE,
- SQL_STATIC_SENSITIVITY,
- SQL_FILE_USAGE,
- SQL_NULL_COLLATION,
- SQL_ALTER_TABLE,
- SQL_COLUMN_ALIAS,
- SQL_GROUP_BY,
- SQL_KEYWORDS,
- SQL_ORDER_BY_COLUMNS_IN_SELECT,
- SQL_OWNER_USAGE,
- SQL_QUALIFIER_USAGE,
- SQL_QUOTED_IDENTIFIER_CASE,
- SQL_SPECIAL_CHARACTERS,
- SQL_SUBQUERIES,
- SQL_UNION,
- SQL_MAX_COLUMNS_IN_GROUP_BY,
- SQL_MAX_COLUMNS_IN_INDEX,
- SQL_MAX_COLUMNS_IN_ORDER_BY,
- SQL_MAX_COLUMNS_IN_SELECT,
- SQL_MAX_COLUMNS_IN_TABLE,
- SQL_MAX_INDEX_SIZE,
- SQL_MAX_ROW_SIZE_INCLUDES_LONG,
- SQL_MAX_ROW_SIZE,
- SQL_MAX_STATEMENT_LEN,
- SQL_MAX_TABLES_IN_SELECT,
- SQL_MAX_USER_NAME_LEN,
- SQL_MAX_CHAR_LITERAL_LEN,
- SQL_TIMEDATE_ADD_INTERVALS,
- SQL_TIMEDATE_DIFF_INTERVALS,
- SQL_NEED_LONG_DATA_LEN,
- SQL_MAX_BINARY_LITERAL_LEN,
- SQL_LIKE_ESCAPE_CLAUSE,
- SQL_QUALIFIER_LOCATION,
- #endif
- SQL_END_OF_GETINFO
- };
-
- #define SQL_INFO_LAST (SQL_END_OF_GETINFO - 1)
- #define SQL_INFO_DRIVER_START 1000
- #if (ODBCVER >= 0x0201)
- #define SQL_OJ_CAPABILITIES 65002 /* temp value until ODBC 3.0 */
- #endif
-
- RETCODE ODBC_API SQLGetInfo( /* Level 1 */
- HDBC hdbc,
- UWORD fInfoType, /* enumSQLGetInfo */
- PTR rgbInfoValue,
- SWORD cbInfoValueMax,
- SWORD ODBCFAR * pcbInfoValue );
-
- /* API functions -- statements */
-
- RETCODE ODBC_API SQLAllocStmt( /* CORE */
- HDBC hdbc,
- HSTMT ODBCFAR * phstmt );
-
- RETCODE ODBC_API SQLCancel( /* CORE */
- HSTMT hstmt );
-
- RETCODE ODBC_API SQLExecDirect( /* CORE */
- HSTMT hstmt,
- UCHAR ODBCFAR * szSqlStr,
- SDWORD cbSqlStr );
-
- RETCODE ODBC_API SQLPrepare( /* CORE */
- HSTMT hstmt,
- UCHAR ODBCFAR * szSqlStr,
- SDWORD cbSqlStr );
-
- RETCODE ODBC_API SQLExecute( /* CORE */
- HSTMT hstmt );
-
- RETCODE ODBC_API SQLGetStmtOption( /* Level 1 */
- HSTMT hstmt,
- UWORD fOption, /* enumSQLOption */
- PTR pvParam );
-
- RETCODE ODBC_API SQLSetStmtOption( /* Level 1 */
- HSTMT hstmt,
- UWORD fOption, /* enumSQLOption */
- UDWORD vParam );
-
- enum enumSQLFreeStmt {
- SQL_CLOSE,
- SQL_DROP,
- SQL_UNBIND,
- SQL_RESET_PARAMS
- };
-
- RETCODE ODBC_API SQLFreeStmt( /* CORE */
- HSTMT hstmt,
- UWORD fOption ); /* enumSQLFreeStmt */
-
- /* Result related functions */
-
- RETCODE ODBC_API SQLBindCol( /* CORE */
- HSTMT hstmt,
- UWORD icol, /* 1..n */
- SWORD fCType, /* SQL_C_... */
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD ODBCFAR * pcbValue );
-
- enum enumSQLColAttrType { /* SQLColAttributes fDescType values */
- SQL_COLUMN_COUNT,
- SQL_COLUMN_NAME,
- SQL_COLUMN_TYPE,
- SQL_COLUMN_LENGTH,
- SQL_COLUMN_PRECISION,
- SQL_COLUMN_SCALE,
- SQL_COLUMN_DISPLAY_SIZE,
- SQL_COLUMN_NULLABLE, /* returns enumSQLNullable */
- SQL_COLUMN_UNSIGNED,
- SQL_COLUMN_MONEY,
- SQL_COLUMN_UPDATABLE, /* returns enumSQLUpdatable */
- SQL_COLUMN_AUTO_INCREMENT,
- SQL_COLUMN_CASE_SENSITIVE,
- SQL_COLUMN_SEARCHABLE, /* returns enumSQLSearchable */
- SQL_COLUMN_TYPE_NAME
- #if (ODBCVER >= 0x0200)
- ,
- SQL_COLUMN_TABLE_NAME,
- SQL_COLUMN_OWNER_NAME,
- SQL_COLUMN_QUALIFIER_NAME,
- SQL_COLUMN_LABEL
- #endif
- };
-
- #define SQL_COLUMN_DRIVER_START 1000
-
- enum enumSQLNullable { /* Output from SQLColAttributes,
- SQLDescribeCol and SQLSpecialColumns */
- SQL_NO_NULLS,
- SQL_NULLABLE,
- SQL_NULLABLE_UNKNOWN
- };
-
- enum enumSQLUpdatable { /* Output from SQLColAttributes */
- SQL_ATTR_READONLY,
- SQL_ATTR_WRITE,
- SQL_ATTR_READWRITE_UNKNOWN
- };
-
- enum enumSQLSearchable { /* Output from SQLColAttributes */
- SQL_UNSEARCHABLE,
- SQL_LIKE_ONLY,
- SQL_ALL_EXCEPT_LIKE,
- SQL_SEARCHABLE
- };
-
- RETCODE ODBC_API SQLColAttributes( /* CORE */
- HSTMT hstmt,
- UWORD icol, /* 1..n */
- UWORD fDescType, /* enumSQLColAttrType */
- PTR rgbDesc,
- SWORD cbDescMax,
- SWORD ODBCFAR * pcbDesc,
- SDWORD ODBCFAR * pfDesc );
-
- RETCODE ODBC_API SQLDescribeCol( /* CORE */
- HSTMT hstmt,
- UWORD icol, /* 1..n */
- UCHAR ODBCFAR * szColName,
- SWORD cbColNameMax,
- SWORD ODBCFAR * pcbColName,
- SWORD ODBCFAR * pfSqlType, /* enumSQLTYPE */
- UDWORD ODBCFAR * pcbColDef,
- SWORD ODBCFAR * pibScale,
- SWORD ODBCFAR * pfNullable ); /* enumSQLNullable */
-
- RETCODE ODBC_API SQLFetch( /* CORE */
- HSTMT hstmt );
-
- enum enumSQLFetchType {
- SQL_FETCH_NEXT = 1,
- SQL_FETCH_FIRST,
- SQL_FETCH_LAST,
- SQL_FETCH_PRIOR,
- SQL_FETCH_ABSOLUTE,
- SQL_FETCH_RELATIVE,
- SQL_FETCH_RESUME, /* not supported by 2.0 drivers */
- #if (ODBCVER >= 0x0200)
- SQL_FETCH_BOOKMARK
- #endif
- };
-
- #define SQL_FETCH_PREV SQL_FETCH_PRIOR
-
- enum enumSQLRowStatus {
- SQL_ROW_SUCCESS,
- SQL_ROW_DELETED,
- SQL_ROW_UPDATED,
- SQL_ROW_NOROW
- #if (ODBCVER >= 0x0200)
- ,
- SQL_ROW_ADDED,
- SQL_ROW_ERROR
- #endif
- };
-
- RETCODE ODBC_API SQLExtendedFetch( /* Level 2 */
- HSTMT hstmt,
- UWORD fFetchType, /* enumSQLFetchType */
- SDWORD irow,
- UDWORD ODBCFAR * pcrow, /* number of rows actually fetched */
- UWORD ODBCFAR * rgfRowStatus ); /* array of enumSQLRowStatus */
-
- enum enumSetPosOps {
- SQL_POSITION,
- SQL_REFRESH
- #if (ODBCVER >= 0x0200)
- ,
- SQL_UPDATE,
- SQL_DELETE,
- SQL_ADD
- #endif
- };
-
- enum enumSetPosLocks {
- SQL_LOCK_NO_CHANGE,
- SQL_LOCK_EXCLUSIVE
- #if (ODBCVER >= 0x0200)
- ,
- SQL_LOCK_UNLOCK
- #endif
- };
-
- #define SQL_ENTIRE_ROWSET 0
- #if (ODBCVER >= 0x0200)
- #define SQL_POSITION_TO(hstmt,irow) \
- SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
- #define SQL_LOCK_RECORD(hstmt,irow,fLock) \
- SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
- #define SQL_REFRESH_RECORD(hstmt,irow,fLock) \
- SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
- #define SQL_UPDATE_RECORD(hstmt,irow) \
- SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
- #define SQL_DELETE_RECORD(hstmt,irow) \
- SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
- #define SQL_ADD_RECORD(hstmt,irow) \
- SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
- #define SQL_ODBC_KEYWORDS \
- "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
- "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
- "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
- "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
- "COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
- "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
- "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
- "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERABLE,"\
- "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
- "DISTINCT,DOMAIN,DOUBLE,DROP,"\
- "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXECEPTION,EXEC,EXECUTE,"\
- "EXISTS,EXTERNAL,EXTRACT,"\
- "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
- "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
- "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
- "INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERNAL,INTO,IS,ISOLATION,"\
- "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
- "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\
- "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
- "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
- "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
- "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
- "REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\
- "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\
- "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
- "SUBSTRING,SUM,SYSTEM_USER,"\
- "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
- "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
- "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
- "VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR"
- #endif /* (ODBCVER >= 0x0200) */
-
- RETCODE ODBC_API SQLSetPos( /* Level 2 */
- HSTMT hstmt,
- UWORD irow, /* 1..n */
- UWORD fRefresh, /* TRUE or FALSE */
- UWORD fLock ); /* TRUE or FALSE */
-
- enum enumSQLConcurrency {
- SQL_CONCUR_READ_ONLY = 1,
- SQL_CONCUR_LOCK,
- SQL_CONCUR_ROWVER,
- SQL_CONCUR_VALUES
- };
-
- #define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER
-
- #if (ODBCVER >= 0x0200)
-
- enum enumCursorType {
- SQL_CURSOR_FORWARD_ONLY,
- SQL_CURSOR_KEYSET_DRIVEN,
- SQL_CURSOR_DYNAMIC,
- SQL_CURSOR_STATIC
- };
-
- enum enumSimCursor {
- SQL_SC_NON_UNIQUE,
- SQL_SC_TRY_UNIQUE,
- SQL_SC_UNIQUE
- };
-
- enum enumRetrieveData {
- SQL_RD_OFF,
- SQL_RD_ON
- };
-
- enum enumUseBookmarks {
- SQL_UB_OFF,
- SQL_UB_ON
- };
-
- /* Special values for certain options */
- #define SQL_ROWSET_SIZE_DEFAULT 1UL
- #define SQL_KEYSET_SIZE_DEFAULT 0UL
- #define SQL_RD_DEFAULT SQL_RD_ON
- #define SQL_UB_DEFAULT SQL_UB_OFF
-
- #endif /* (ODBCVER >= 0x0200) */
-
- enum enumSQLKeySet {
- SQL_SCROLL_FORWARD_ONLY = 0, /* SQL_CURSOR_FORWARD_ONLY */
- SQL_SCROLL_KEYSET_DRIVEN = -1, /* SQL_CURSOR_KEYSET_DRIVEN */
- SQL_SCROLL_DYNAMIC = -2 /* SQL_CURSOR_DYNAMIC */
- #if (ODBCVER >= 0x0200)
- ,
- SQL_SCROLL_STATIC = -3 /* SQL_CURSOR_STATIC */
- #endif
- };
-
-
- /* Use SQLSetStmtOption */
- RETCODE ODBC_API SQLSetScrollOptions( /* Level 2 */
- HSTMT hstmt,
- UWORD fConcurrency, /* enumSQLConcurrency */
- SDWORD crowKeySet, /* number or enumSQLKeySet */
- UWORD crowRowSet ); /* number of rows */
-
- RETCODE ODBC_API SQLGetCursorName( /* CORE */
- HSTMT hstmt,
- UCHAR ODBCFAR * szCursor,
- SWORD cbCursorMax,
- SWORD ODBCFAR * pcbCursor );
-
- RETCODE ODBC_API SQLGetData( /* Level 1 */
- HSTMT hstmt,
- UWORD icol, /* 1..n */
- SWORD fCType, /* SQL_C_... */
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD ODBCFAR * pcbValue );
-
- RETCODE ODBC_API SQLNumResultCols( /* CORE */
- HSTMT hstmt,
- SWORD ODBCFAR * pccol );
-
- RETCODE ODBC_API SQLRowCount( /* CORE */
- HSTMT hstmt,
- SDWORD ODBCFAR * pcrow );
-
- RETCODE ODBC_API SQLSetCursorName( /* CORE */
- HSTMT hstmt,
- UCHAR ODBCFAR * szCursor,
- SWORD cbCursor );
-
- /* Parameters */
-
- RETCODE ODBC_API SQLNumParams( /* Level 2 */
- HSTMT hstmt,
- SWORD ODBCFAR * pcpar );
-
- RETCODE ODBC_API SQLDescribeParam( /* Level 2 */
- HSTMT hstmt,
- UWORD ipar, /* 1..n */
- SWORD ODBCFAR * pfSqlType, /* enumSQLTYPE */
- UDWORD ODBCFAR * pcbColDef,
- SWORD ODBCFAR * pibScale,
- SWORD ODBCFAR * pfNullable ); /* enumSQLNullable */
-
- #if (ODBCVER >= 0x0200)
- #define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
- #define SQL_LEN_DATA_AT_EXEC(length) \
- (-length+SQL_LEN_DATA_AT_EXEC_OFFSET)
-
- RETCODE ODBC_API SQLBindParameter(
- HSTMT hstmt,
- UWORD ipar,
- SWORD fParamType,
- SWORD fCType,
- SWORD fSqlType,
- UDWORD cbColDef,
- SWORD ibScale,
- PTR rgbValue,
- SDWORD cbValueMax,
- SDWORD ODBCFAR * pcbValue );
-
- #endif
-
- /* Use SQLBindParameter */
- RETCODE ODBC_API SQLSetParam( /* CORE */
- HSTMT hstmt,
- UWORD ipar, /* 1..n */
- SWORD fCType, /* SQL_C_... */
- SWORD fSqlType, /* enumSQLTYPE */
- UDWORD cbColDef, /* length of data type */
- SWORD ibScale, /* # digits after decimal point */
- PTR rgbValue,
- SDWORD ODBCFAR * pcbValue );
-
- RETCODE ODBC_API SQLParamData( /* Level 1 */
- HSTMT hstmt,
- PTR ODBCFAR * prgbValue ); /* returns rgbValue from SQLSetParam */
-
- RETCODE ODBC_API SQLPutData( /* Level 1 */
- HSTMT hstmt,
- PTR rgbValue, /* Note: type set by SQLSetParam */
- SDWORD cbValue );
-
- RETCODE ODBC_API SQLMoreResults( /* Level 2 */
- HSTMT hstmt );
-
- RETCODE ODBC_API SQLParamOptions( /* Level 2 */
- HSTMT hstmt,
- UDWORD crow,
- UDWORD ODBCFAR * pirow );
-
- /* Catalog information */
-
- RETCODE ODBC_API SQLColumnPrivileges( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName,
- UCHAR ODBCFAR * szColumnName,
- SWORD cbColumnName );
-
- RETCODE ODBC_API SQLTablePrivileges( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName );
-
- RETCODE ODBC_API SQLColumns( /* Level 1 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName,
- UCHAR ODBCFAR * szColumnName,
- SWORD cbColumnName );
-
- enum enumSQLForeignKeyAction { /* in SQLForeignKeys result set */
- SQL_CASCADE,
- SQL_RESTRICT,
- SQL_SET_NULL
- };
-
- RETCODE ODBC_API SQLForeignKeys( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szPkTableQualifier,
- SWORD cbPkTableQualifier,
- UCHAR ODBCFAR * szPkTableOwner,
- SWORD cbPkTableOwner,
- UCHAR ODBCFAR * szPkTableName,
- SWORD cbPkTableName,
- UCHAR ODBCFAR * szFkTableQualifier,
- SWORD cbFkTableQualifier,
- UCHAR ODBCFAR * szFkTableOwner,
- SWORD cbFkTableOwner,
- UCHAR ODBCFAR * szFkTableName,
- SWORD cbFkTableName );
-
- RETCODE ODBC_API SQLGetTypeInfo( /* Level 1 */
- HSTMT hstmt,
- SWORD fSqlType ); /* enumSQLTYPE or SQL_ALL_TYPES */
-
- RETCODE ODBC_API SQLPrimaryKeys( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName );
-
- enum enumSQLProcColUse { /* in SQLProcedureColumns result set */
- SQL_PARAM_TYPE_UNKNOWN,
- SQL_PARAM_INPUT,
- SQL_PARAM_INPUT_OUTPUT,
- SQL_RESULT_COL
- #if (ODBCVER >= 0x0200)
- ,
- SQL_PARAM_OUTPUT,
- SQL_RETURN_VALUE
- #endif
- };
-
- #define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
- #define SQL_SETPARAM_VALUE_MAX (-1L)
-
- RETCODE ODBC_API SQLProcedureColumns( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szProcQualifier,
- SWORD cbProcQualifier,
- UCHAR ODBCFAR * szProcOwner,
- SWORD cbProcOwner,
- UCHAR ODBCFAR * szProcName,
- SWORD cbProcName,
- UCHAR ODBCFAR * szColumnName,
- SWORD cbColumnName );
-
- RETCODE ODBC_API SQLProcedures( /* Level 2 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szProcQualifier,
- SWORD cbProcQualifier,
- UCHAR ODBCFAR * szProcOwner,
- SWORD cbProcOwner,
- UCHAR ODBCFAR * szProcName,
- SWORD cbProcName );
-
- enum enumSQLSpecialType {
- SQL_BEST_ROWID = 1,
- SQL_ROWVER
- };
-
- enum enumSQLScope {
- SQL_SCOPE_CURROW,
- SQL_SCOPE_TRANSACTION,
- SQL_SCOPE_SESSION
- };
-
- RETCODE ODBC_API SQLSpecialColumns( /* Level 1 */
- HSTMT hstmt,
- UWORD fColType, /* enumSQLSpecialType */
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName,
- UWORD fScope, /* enumSQLScope */
- UWORD fNullable ); /* enumSQLNullable */
-
- enum enumSQLUnique {
- SQL_INDEX_UNIQUE,
- SQL_INDEX_ALL
- };
-
- enum enumSQLAccuracy {
- SQL_QUICK,
- SQL_ENSURE
- };
-
- enum enumSQLTableStat {
- SQL_TABLE_STAT,
- SQL_INDEX_CLUSTERED,
- SQL_INDEX_HASHED,
- SQL_INDEX_OTHER
- };
-
- #if (ODBCVER >= 0x0200)
- enum enumProcType {
- SQL_PT_UNKNOWN,
- SQL_PT_PROCEDURE,
- SQL_PT_FUNCTION
- };
-
- enum enumPseudoCol {
- SQL_PC_UNKNOWN,
- SQL_PC_NOT_PSEUDO,
- SQL_PC_PSEUDO
- };
-
- #define SQL_PC_NON_PSEUDO SQL_PC_NOT_PSEUDO
-
- #endif
-
- RETCODE ODBC_API SQLStatistics( /* Level 1 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName,
- UWORD fUnique, /* enumSQLUnique */
- UWORD fAccuracy ); /* enumSQLAccuracy */
-
- RETCODE ODBC_API SQLTables( /* Level 1 */
- HSTMT hstmt,
- UCHAR ODBCFAR * szTableQualifier,
- SWORD cbTableQualifier,
- UCHAR ODBCFAR * szTableOwner,
- SWORD cbTableOwner,
- UCHAR ODBCFAR * szTableName,
- SWORD cbTableName,
- UCHAR ODBCFAR * szTableType, /* string 'TABLE','VIEW' */
- SWORD cbTableType );
-
- #endif
-
- #ifdef __cplusplus
- };
- #endif
- #endif /* __ODBC_H_INCLUDED */
-